#define _CRT_SECURE_NO_DEPRECATE
#include <cstdio>
#include <cstring>
#include <cstdlib>

const int max_wyrazow = 4096;
const char separator = '|';

int main(int argc, char *argv[])
{
	
	if (argc != 3)
	{
		fprintf(stderr, "Zla liczba argumentow, oczekiwano 2\n");
		return 1;
	}
	int kolumna_docelowa = atoi(argv[2]) - 1;
	int kolumna_do_skopiowania = atoi(argv[1]) - 1;
	if (kolumna_docelowa < 0 || kolumna_do_skopiowania < 0 || kolumna_docelowa > 6 || kolumna_do_skopiowania > 5)
	{
		fprintf(stderr, "Agrumenty programu sa niepoprawne\n");
		return 1;
	}
	int licznik_bledow = 0;
	char linia[max_wyrazow];
	int licznik_linii = 0;
	char pola[7][4096];
	while (fgets(linia, max_wyrazow, stdin) != 0)
	{
		++licznik_linii;
		int liczba_separatorow = 0;
		for (char *znak = linia; *znak != NULL; ++znak)
		{
			if (*znak == separator)
			{
				liczba_separatorow++;
			}
		}
		if (liczba_separatorow == 6)
		{
			printf("%s", linia);
		}
		else if (liczba_separatorow == 5)
		{
			char *biezaca_pozycja = linia;
			int numer_pola = 0;
			do
			{
				char *poczatek_pola = biezaca_pozycja;
				char *koniec_pola = poczatek_pola;
				while (*koniec_pola != separator && *koniec_pola != NULL && *koniec_pola != '\n')
				{
					++koniec_pola;
				}
				if (*koniec_pola == separator)
				{
					biezaca_pozycja = koniec_pola + 1;
				}
				else
				{
					biezaca_pozycja = NULL;
				}
				*koniec_pola = NULL;
				strcpy(pola[numer_pola], poczatek_pola);
				++numer_pola;
			} while (biezaca_pozycja != NULL);

			for (int kolumna = 0; kolumna < 7; ++kolumna)
			{
				if (kolumna < kolumna_docelowa)
				{
					printf("%s", pola[kolumna]);
				}
				else if (kolumna == kolumna_docelowa)
				{
					printf("%s", pola[kolumna_do_skopiowania]);
				}
				else
				{
					printf("%s", pola[kolumna-1]);
				}

				if (kolumna == 6)
				{
					printf("\n");
				}
				else
				{
					printf("|");
				}
			}
		}
		else
		{
			++licznik_bledow;
			printf("%s", linia);
			fprintf(stderr, "Blad odzczytu w linii %d.\n", licznik_linii);
		}
	}
	if (licznik_bledow != 0)
	{
		fprintf(stderr, "Ilosc bledow: %d\n", licznik_bledow);
		return 1;
	}
	return 0;
}